跳到主要内容

Android证书分为“用户证书”和“系统证书”两种,在设置->安全->"查看安全证书"列表中,可以看到“系统”和“用户”两个列表。用户通过浏览器下载安装或者通过WLAN高级设置安装的证书均为用户证书。

安装为系统证书有什么好处呢?

(1)安装用户证书必须要设置开机密码,而且设置后就不能取消,除非先删掉所有的用户证书。如果安装为系统证书就不需要设置开机密码,自动化操作时更方便。

(2)Android 7以上版本APP默认不信任用户证书,只信任系统证书,安装为用户证书,对APP的HTTPS抓包会失败。安装为全局证书才能被所有APP信任,方可进行HTTPS抓包。

默认情况下,针对 Android 7.0+ (API level 24+) 的应用不再信任用户或管理员添加的CA证书来进行安全连接。(之前我们其实是将安全证书安装到安卓手机上作为用户信任安全证书,新版本如果APP开启了设置我们的代理请求会被认为是不安全的。)

Android的系统证书的存储位置是/system/etc/security/cacerts,证书文件必须是PEM格式,而且文件命名必须符合系统证书规范。
1、准备一台已经 root的手机

2、准备mitmproxy证书文件

Windows 或者Linux 在mitmdump第一次运行会在用户目录生成对应的文件。

复制代码

#PEM或者DER格式均可。 #如果是PEM格式的: oboth@DESKTOP-BUFOEB1:/mnt/c/Users/luoz/.mitmproxy$ openssl x509 -inform PEM -subject_hash_old -in mitmproxy-ca-cert.pem -noout c8750f0d

如果是DER格式的:

oboth@DESKTOP-BUFOEB1:/mnt/c/Users/luoz/.mitmproxy$ openssl x509 -inform PEM -subject_hash_old -in mitmproxy-ca-cert.cer -noout c8750f0d #重命名 cp mitmproxy-ca-cert.pem c8750f0d.0
#传入手机
adb push c8750f0d.0 /sdcard

#获取手机的root权限 adb shell su #挂载系统目录为可写 mount -o rw,remount / mv /sdcard/c8750f0d.0 /system/etc/security/cacerts #修改证书权限 chmod 644 /system/etc/security/cacerts/c8750f0d.0

面具的系统目录覆盖功能

/data/adb/modules/任意模块目录/system/ 对应着:/system/

即可 修改 host ca 等等